Traditionally, personal computers include combinations of operating systems, applications, and user settings, which are each managed individually by owners or administrators on an ongoing basis. However, many organizations are now using desktop virtualization to provide a more flexible option to address the varying needs of their users. In desktop virtualization, a user's computing environment (e.g., operating system, applications, and/or user settings) may be separated from the user's physical computing device (e.g., smartphone, laptop, desktop computer). Using client-server technology, a “virtualized desktop” may be stored in and administered by a remote server, rather than in the local storage of the client computing device.
There are several different types of desktop virtualization systems. As an example, Virtual Desktop Infrastructure (VDI) refers to the process of running a user desktop inside a virtual machine that resides on a server. VDI and other server-based desktop virtualization systems may provide personalized desktops for each user, while allowing for centralized management and security. Servers in such systems may include storage for virtual desktop images and system configuration information, as well as software components to provide the virtual desktops and allow users to interconnect to them. For example, a VDI server may include one or more hypervisors (virtual machine managers) to create and maintain multiple virtual machines, software to manage the hypervisor(s), a connection broker, and software to provision and manage the virtual desktops.
Desktop virtualization systems may be implemented using a single virtualization server or a combination of servers interconnected as a server grid. Multi-server desktop virtualization systems often include additional computing devices and/or shared storage to provide a common system management portal and to maintain global state information. Such systems often use the external shared storage, along with database and enterprise server software within the virtualization servers, to manage the system.
When a user desires to connect to a virtual desktop, the user's local software client contacts a connection broker to establish a session with a remote desktop or other resource. Conventional connection brokers are said to be “inline” and thus involved in all decisions to determine where to direct a user's session. Stated differently, all connections must be initiated through and established with the assistance of the connection broker. As a result, the connection broker is a critical piece of infrastructure because an outage of the broker infrastructure will result in a large-scale deployment outage, i.e., users will not be able to connect with hosted resources.